package au.com.acpfg.misc.spectra; import javax.swing.Icon; import au.com.acpfg.misc.spectra.SpectralDataInterface; import org.knime.core.data.DataCell; import org.knime.core.data.DataColumnSpec; import org.knime.core.data.DataType; import org.knime.core.data.DataValue; import org.knime.core.data.DataValueComparator; import org.knime.core.data.DataValue.UtilityFactory; import org.knime.core.data.renderer.DataValueRendererFamily; import org.knime.core.data.renderer.DefaultDataValueRendererFamily; import org.systemsbiology.jrap.stax.Scan; public class SpectraUtilityFactory extends UtilityFactory { private static int spectra_id = 1; private static final Icon ICON = loadIcon(SpectralDataInterface.class, "spectra-icon-16x16.png"); public static DataCell createCell(MyMGFPeakList mgf) { return new MGFSpectraCell(mgf); } public static DataCell createCell(Scan scn, String id) { if (id == null) { id = "Spectra" + spectra_id; spectra_id++; } return (scn.getHeader().getMsLevel() > 1) ? new mzMLSpectraCell(scn, id) : DataType.getMissingCell(); } /** {@inheritDoc} */ @Override public Icon getIcon() { return ICON; } /** {@inheritDoc} */ @Override protected DataValueRendererFamily getRendererFamily( final DataColumnSpec spec) { return new DefaultDataValueRendererFamily( new SpectraStringRenderer(), new SpectraTop10Renderer(), new SpectraVisualRenderer(), new SpectraBitVectorRenderer("Spectra M/Z map (iTRAQ 8-plex region, no thres., 0.05u)", 113.0, 121.2, 0.0, 0.05), new SpectraBitVectorRenderer("Spectra M/Z map (iTRAQ 8-plex region, thres. > 20, 0.05u)", 113.0, 121.2, 20.0, 0.05), new SpectraBitVectorRenderer("Spectra M/Z map (low region, no thres., 0.1u)", 100.0, 600.0, 0.0, 0.1), new SpectraBitVectorRenderer("Spectra M/Z map (low region, thres. > 20, 0.1u)", 100.0, 600.0, 20.0, 0.1), new SpectraBitVectorRenderer("Spectra M/Z map (entire spectrum, no thres., 1u)", 0.0, 2000.0, 0.0, 1.0), new SpectraBitVectorRenderer("Spectra M/Z map (entire spectrum, thres. > 20, 1u)", 0.0, 2000.0, 20.0, 1.0) ); } /** {@inheritDoc} */ @Override protected DataValueComparator getComparator() { return new DataValueComparator() { /** {@inheritDoc} */ @Override protected int compareDataValues(final DataValue v1, final DataValue v2) { // TODO... how to compare spectra... number of peaks? return 0; } }; } }